The present invention relates generally to digital communication systems and more particularly to a technique for providing enhanced performance.
The discussion that follows assumes an understanding of digital communication principles as known to those of skill in that art. A good general reference in the digital communication field is John G. Proakis, Digital Communications, (McGraw-Hill 1995), herein incorporated by reference.
Conventional Viterbi Algorithm
The Viterbi algorithm accepts as input a sequence of received symbols and determines the maximum likelihood sequence of transmitted symbols. The Viterbi algorithm is applied to decode convolutional coding or trellis coding applied at the transmitter end or to remove the effects of a partial response channel. The algorithm is perhaps best understood by reference to a so-called trellis diagram. A trellis diagram is a time-indexed state diagram. At each trellis stage, n, there are two or more states. Transitions between states at a trellis stage, n, and states at a trellis stage n+1 denote transmitted symbols. A path through the trellis consists of a number of successive transitions and denotes a sequence of symbols. The number of states at each stage and the correspondence between transitions and symbols are particular to the relevant trellis code, convolutional code, or partial response channel characteristics. The Viterbi algorithm uses received symbol information to identify a particular path through the trellis and thus determine the maximum likelihood sequence of transmitted symbols.
Computation of the maximum likelihood sequence proceeds on a stage-by-stage basis. Possible paths are eliminated once it becomes clear they cannot be the maximum likelihood path. Given received symbol information, the likelihood of a particular branch being taken is evaluated according to a measure known as the branch metric. For each state, the Viterbi algorithm computes the branch metrics for the surviving paths leading to that state. The branch metric will typically consist of the previously accumulated branch metric for the path plus the branch metric for the transition taken to the new state. Based on the accumulated branch metrics for all the paths leading to the state, the Viterbi algorithm selects a best path to the state and eliminates the other states. Only one path survives to each stage, permitting identification of the maximum likelihood transmitted symbol sequence.
FIG. 2 depicts the prior art operation of a Viterbi decoding algorithm assuming channel phase is known. Consider an AWGN channel model,
rn=ei"THgr"Asn+Wn, n= . . . 0,1,2, . . . ,xe2x80x83xe2x80x83(1)
where "THgr" is channel phase; below we consider two cases where channel phase is known and where it is completely unknown. The transmitted symbol sn is an MPSK symbol, where sk=ejxcfx86k, and xcfx86k is a uniformly distributed random phase taking values in {0,2xcfx80/M, . . . 2xcfx80(Mxe2x88x921)/M}. The received sample is rn, and wn is an independent sample of zero mean white complex Gaussian noise of variance "sgr"2.
The mathematics of a conventional Viterbi decoding algorithm for a convolutional code, assuming channel phase "THgr" is known will now be described. To simplify the description, assume the convolutional code has two branches into and out of each state. FIG. 2 depicts a state diagram wherein two states, u and v, at stage nxe2x88x921, which both have a single branch into state w at stage n. Associated with state u is the previously determined winning path into state u, denoted by su,0,su,1, . . . su,nxe2x88x921, and a path metric mu. Associated with state v is the previously determined winning path into state v, denoted by sv,0,sv,1, . . . sv,nxe2x88x921, and a path metric mz. Let su,n be the symbol on the branch from state u to state w, and let sv,n be the symbol on the branch from state v to state w. Let s0,s1, . . . snxe2x88x92sn be the first n actual transmitted symbols, and let r0,r1, . . . rnxe2x88x921,rn be the corresponding received samples. The following discussion explains how to update state w at stage n, by finding the winning branch into state w, the winning path into state w, and the winning path metric for state w. The conventional Viterbi algorithm proceeds in four steps:
(1) Form two branch metrics
Re[rnsu,n*(sj"THgr")*],xe2x80x83xe2x80x83(2)
and
Re[rnsv,n*(sj"THgr")*].xe2x80x83xe2x80x83(3)
(2) Use branch metric (2) to form a candidate path metric for the top path,
mu=Re[rnsu,n*(ej"THgr")*],xe2x80x83xe2x80x83(4)
and use branch metric (3) to form a candidate path metric for the bottom path,
mv+Re[rnsv,n*(ej"THgr")*].xe2x80x83xe2x80x83(5)
(3) Compare (4) and (5) and select a winner, say (4).
(4) Update state w at stage n. The winning path into state w at stage n is sw,0,sw,1, . . . sw,nxe2x88x92, sw,nwhere
(sw,0,sw,1, . . .sw,nxe2x88x921, sw,n)=(su,0,su,1, . . . su,nxe2x88x921, su,n).
The winning path metric is
mw=mu+Re[rnsu,n*(ej"THgr")*].
Non-coherent Viterbi Decoding Algorithm Operation
FIG. 3 depicts the prior art operation of a Viterbi decoding algorithm using multiple symbol noncoherent detection. Non-coherent Viterbi decoding is described in [9] A. N. D""Andrea, U. Mengali, and G. M. Vitetta, xe2x80x9cApproximate ML decoding of coded PSK with no explicit carrier phase reference,xe2x80x9d IEEE Transactions on Communications, Vol. 42, no. 2/3/4, February/March/April 1994, pp. 1033-1039, incorporated herein by reference. This approach can be used without an explicit phase reference, and so assume that "THgr" in (1) is uniformly distributed on (xe2x88x92xcfx80,xcfx80) FIG. 3 is the same as FIG. 2 except that each state has a path history variable associated with it; thus states u and v at stage nxe2x88x921 have the path history variables Wu,nxe2x88x921 and Wv,nxe2x88x921, associated with them, respectively, where Wu,nxe2x88x921 and Wv,nxe2x88x921 are defmed by             W              u        ,                  n          -          1                      =                  ∑                  k          =          0                          n          -          1                    ⁢                        α                      n            -            1            -            k                          ⁢                  r          k                ⁢                  s                      u            ,            k                    *                      and                    W                  v          ,                      n            -            1                              =                        ∑                      k            =            0                                n            -            1                          ⁢                              α                          n              -              1              -              k                                ⁢                      r            k                    ⁢                      s                          v              ,              k                        *                                ,  
and xcex1 is a real number in the range 0xe2x89xa6xcex1xe2x89xa61. For a particular state x, x xcex5{u, v}, the path history variable is a function of the winning path into state x, sx,0, sx,1, . . .sx,nxe2x88x921, and the channel sample history r0, r1, . . . rnxe2x88x921, rn; the path history variable for a particular path acts as a remodulated phase reference for that path and takes the place of the coherent phase reference term (eJ"THgr")*in steps (1)-(4) above.
The discussion will now turn to how to find the winning branch into state w at stage n, the winning path into state w, the winning path metric for state w, and the path history variable for state w at stage n, Ww,n. The modified Viterbi algorithm proceeds in four steps:
(1a) Form two branch metrics
Re[rnsu,n*W*u,nxe2x88x921],xe2x80x83xe2x80x83(6)
and
Re[rnsv,n*Wv,nxe2x88x921*]xe2x80x83xe2x80x83(7)
(2a) Use branch metric (6) to form a candidate path metric for the top path,
mu+Re[rnsu,n*Wu,nxe2x88x921*],xe2x80x83xe2x80x83(8)
and use branch metric (7) to form a candidate path metric for the bottom path,
mv+Re[rnsv,n*Wvnxe2x88x921*].xe2x80x83xe2x80x83(9)
(3a) Compare (8) and (9) and select a winner, say (8).
(4a) Update state w at stage n. The winning path into state w at stage n is sw,0,sw,1, . . . sw,nxe2x88x921,sw,n where
(sw,0,sw,1, . . . sw,nxe2x88x921, sw,n)=(su,0,su,1, . . .su,nxe2x88x921, su,n).
The winning path metric is
mw=mu+Re[rnsu,n*Wu,nxe2x88x92*].
The winning path history variable is
Note that steps (1a)-(4a) are very similar to steps (1)-(4), with the path history variable taking the place of the coherent phase reference term (ej"THgr")*.
Steps (1a)-(4a), illustrate one particular way of implementing trellis decoding with multiple symbol noncoherent detection. There are several other ways of implementing trellis decoding with multiple symbol noncoherent detection described in the literature which differ in how the branch metrics in (1a) are formed. However all approaches are fundamentally the same in that each branch metric in (1a) is formed using received samples and previous symbols along the winning path into that branch.
Diversity Receivers
One technique for improving performance in digital communications is to take advantage of information transmitted between a data source and a receiver via two or more different channels. This is known in the art as diversity reception. For example, a receiver site may have two different antennas. The two antennas may receive a signal generated by the same transmitter, albeit by somewhat different paths, or signals received from two different transmitters. The transmitters may have different locations, different frequencies, or both. By integrating the information received via two or more signals received via two or more different channels, one may obtain better performance than would be available with anyone signal independently.
Various receiver architectures have been developed for taking advantage of such multiple signals. For example, it is know to essentially employ a distinct receiver for each received signal. Each receiver has its own data output. The transmitted data is estimated by weighting each receiver output and either 1) adding the outputs together, 2) switching among the outputs, or 3) having the various receivers vote as to the transmitted data. The performance improvement achieved by this technique is relatively low. Also, tracking loops are required to set the weights for each received signals and these loops do not operate properly in low noise conditions. What is needed is an improved technique for taking advantage of signals received via diverse channels.
The present invention provides a method and apparatus for taking advantage of diverse signals. According to the present invention, trellis decoding takes advantage of multiple symbol noncoherent detection and diversity combining. Accordingly, combination of diverse signals effectively occurs pre-detection. Tracking loops are not necessary to set weights for each channel. In a QPSK embodiment employing a rate xc2xd convolutional code, an improvement in effective SNR of 1-3 dB may be achieved as compared with non-diverse reception.
In accordance with a first aspect of the present invention, a method for receiving a signal via diverse channels includes steps of: receiving a first signal via a first channel, receiving a second signal via a second channel, converting the first signal to a first stream of received symbols estimating a transmitted coded symbol stream, converting the second signal to a second stream of symbols estimating the transmitted coded symbol stream, and applying a Viterbi decoding procedure to the first stream of symbols and the second stream of symbols wherein branch metrics for the Viterbi decoding procedure are evaluated based on both the first stream of received symbols and the second stream of received symbols.
In accordance with a second aspect of the present invention, a receiver includes a non-coherent Viterbi decoder that accepts as input a first stream of received symbols and a second stream of received symbols, the first stream and the second stream estimating a transmitted symbol stream. The Viterbi decoder includes a branch metric evaluator that evaluates branch metrics responsive to both the first stream of received symbols and the second stream of received symbols, and a path history variable evaluator that evaluates path history variables responsive to both the first stream of received symbols and the second stream of received symbols.
In accordance with a third aspect of the present invention, an enhanced Viterbi decoder processes received symbol sequences by selecting a maximum likelihood path through states of a trellis. The path includes successive transitions between states. The enhanced Viterbi decoder include: an input port that receives a first stream of received symbols received via a first channel and a second stream of received symbols received via a second channel. The first stream and the second stream estimate a transmitted symbol stream. The enhanced Viterbi decoder further include: a branch metric evaluator that determines a likelihood measure for a particular transition between states. The likelihood measure is responsive to both the first stream and the second stream. The enhanced Viterbi decoder still further includes a path evaluator that selects and eliminates non-maximum likelihood paths based on a cumulative likelihood measure evaluated based on likelihood measures for successive transitions as evaluated by the branch metric evaluator.
A further understanding of the nature and advantages of the inventions herein may be realized by reference to the remaining portions of the specification and the attached drawings.